package AccountEntities;
public class SpendingAccount extends Account {
private static final long serialVersionUID = 7518877457423816922L;
private static final double MIN_WITHDRAW = 500.0;
private static final double MIN_ADD = 1000.0;
public SpendingAccount(String ID, String ownerName) {
super(ID, ownerName);
setType();
}
@Override
public void addMoney(double sum) {
assert(sum >= MIN_ADD):"Add more for Spending Account";
double previousMoney = money;
money += sum;
setChanged();
notifyObservers("You added " + sum + " in " + ID);
assert(money == (previousMoney + sum)):"Wrong sum after addition";
}
@Override
public void withdrawMoney(double sum) {
assert((sum >= MIN_WITHDRAW)&&(sum <= money)):"Withdraw more money for Spending Account";
double previousMoney = money;
money -= sum;
setChanged();
notifyObservers("You withdrawn " + sum + " from " + ID);
assert(money == (previousMoney - sum)):"Wrong sum after subtraction";
}
@Override
public void setType() {
type = "spending";
}
@Override
public String toString() {
return "type: " + type + "\nowner: " + ownerName + "\nmoney: " + money +"\n----------------";
}
}